//002. 偶数斐波那契数
//斐波那契序列中的数都是由前两项加总得出，假设第一与第二项为 1 与 2，则前十项分别为：
//1，2，3，5，8，13，21，34，55，89
//考虑不超过四百万的斐波那契数，计算其中偶数斐波那契数的和。
//答案：4613732

public class week002 {
    public static void main(String[] args) {
        int[] fib = new int[3];
        fib[0] = 1;
        fib[1] = 2;
        int sum = 2, end = 4000000;
        for (int i = 2; true; ++i) {//这里被减数一定大于1和2
            //可改成fib[i % 3] = fib[(i - 1 + 3) % 3] + fib[(i - 2 + 3) % 3];
            fib[i % 3] = fib[(i - 1) % 3] + fib[(i - 2) % 3];
            if (fib[i % 3] > end) break;
            if ((fib[i % 3] % 2) == 0) sum += fib[i % 3];
        }
        System.out.println(sum);
    }
}